home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 7: Programming / CDAT7.iso / demos / VisualAge for Java 2.0 Entry / setup / data1.cab / ide-e / IDE / cache / 1IKVH32 (.txt) < prev    next >
Encoding:
Java Class File  |  1998-09-16  |  4.9 KB  |  192 lines

  1. package com.sun.java.swing;
  2.  
  3. import com.sun.java.accessibility.Accessible;
  4. import com.sun.java.accessibility.AccessibleContext;
  5. import com.sun.java.accessibility.AccessibleRole;
  6. import com.sun.java.accessibility.AccessibleSelection;
  7. import java.awt.Component;
  8. import java.util.Vector;
  9.  
  10. class JMenu$AccessibleJMenu extends JMenuItem.AccessibleJMenuItem implements AccessibleSelection {
  11.    // $FF: synthetic field
  12.    JMenu this$0;
  13.  
  14.    public int getAccessibleChildrenCount() {
  15.       Component[] children = this.this$0.getMenuComponents();
  16.       int count = 0;
  17.  
  18.       for(int j = 0; j < children.length; ++j) {
  19.          if (children[j] instanceof Accessible) {
  20.             ++count;
  21.          }
  22.       }
  23.  
  24.       return count;
  25.    }
  26.  
  27.    public Accessible getAccessibleChild(int i) {
  28.       Component[] children = this.this$0.getMenuComponents();
  29.       int count = 0;
  30.  
  31.       for(int j = 0; j < children.length; ++j) {
  32.          if (children[j] instanceof Accessible) {
  33.             if (count == i) {
  34.                if (children[j] instanceof JComponent) {
  35.                   AccessibleContext ac = ((Accessible)children[j]).getAccessibleContext();
  36.                   ac.setAccessibleParent(this.this$0);
  37.                }
  38.  
  39.                return (Accessible)children[j];
  40.             }
  41.  
  42.             ++count;
  43.          }
  44.       }
  45.  
  46.       return null;
  47.    }
  48.  
  49.    public AccessibleRole getAccessibleRole() {
  50.       return AccessibleRole.MENU;
  51.    }
  52.  
  53.    public AccessibleSelection getAccessibleSelection() {
  54.       return this;
  55.    }
  56.  
  57.    public int getAccessibleSelectionCount() {
  58.       MenuElement[] me = MenuSelectionManager.defaultManager().getSelectedPath();
  59.       if (me != null) {
  60.          for(int i = 0; i < me.length; ++i) {
  61.             if (me[i] == this.this$0 && i + 1 < me.length) {
  62.                return 1;
  63.             }
  64.          }
  65.       }
  66.  
  67.       return 0;
  68.    }
  69.  
  70.    public Accessible getAccessibleSelection(int i) {
  71.       if (i >= 0 && i < this.this$0.getItemCount()) {
  72.          MenuElement[] me = MenuSelectionManager.defaultManager().getSelectedPath();
  73.          if (me != null) {
  74.             label28:
  75.             for(int j = 0; j < me.length; ++j) {
  76.                if (me[j] == this.this$0) {
  77.                   do {
  78.                      ++j;
  79.                      if (j >= me.length) {
  80.                         continue label28;
  81.                      }
  82.                   } while(!(me[j] instanceof JMenuItem));
  83.  
  84.                   return (Accessible)me[j];
  85.                }
  86.             }
  87.          }
  88.  
  89.          return null;
  90.       } else {
  91.          return null;
  92.       }
  93.    }
  94.  
  95.    public boolean isAccessibleChildSelected(int i) {
  96.       MenuElement[] me = MenuSelectionManager.defaultManager().getSelectedPath();
  97.       if (me != null) {
  98.          JMenuItem mi = this.this$0.getItem(i);
  99.  
  100.          for(int j = 0; j <= me.length; ++j) {
  101.             if (me[j] == mi) {
  102.                return true;
  103.             }
  104.          }
  105.       }
  106.  
  107.       return false;
  108.    }
  109.  
  110.    private MenuElement[] buildMenuElementArray(JMenu leaf) {
  111.       Vector elements = new Vector();
  112.       Component current = leaf.getPopupMenu();
  113.  
  114.       while(true) {
  115.          while(!(current instanceof JPopupMenu)) {
  116.             if (current instanceof JMenu) {
  117.                JMenu menu = (JMenu)current;
  118.                elements.insertElementAt(menu, 0);
  119.                current = ((Component)menu).getParent();
  120.             } else if (current instanceof JMenuBar) {
  121.                JMenuBar bar = (JMenuBar)current;
  122.                elements.insertElementAt(bar, 0);
  123.                MenuElement[] me = new MenuElement[elements.size()];
  124.                elements.copyInto(me);
  125.                return me;
  126.             }
  127.          }
  128.  
  129.          JPopupMenu pop = (JPopupMenu)current;
  130.          elements.insertElementAt(pop, 0);
  131.          current = pop.getInvoker();
  132.       }
  133.    }
  134.  
  135.    public void addAccessibleSelection(int i) {
  136.       if (i >= 0 && i < this.this$0.getItemCount()) {
  137.          JMenuItem mi = this.this$0.getItem(i);
  138.          if (mi != null) {
  139.             if (mi instanceof JMenu) {
  140.                MenuElement[] me = this.buildMenuElementArray((JMenu)mi);
  141.                MenuSelectionManager.defaultManager().setSelectedPath(me);
  142.             } else {
  143.                ((AbstractButton)mi).doClick();
  144.                MenuSelectionManager.defaultManager().setSelectedPath((MenuElement[])null);
  145.             }
  146.          }
  147.  
  148.       }
  149.    }
  150.  
  151.    public void removeAccessibleSelection(int i) {
  152.       if (i >= 0 && i < this.this$0.getItemCount()) {
  153.          JMenuItem mi = this.this$0.getItem(i);
  154.          if (mi != null && mi instanceof JMenu && ((JMenu)mi).isSelected()) {
  155.             MenuElement[] old = MenuSelectionManager.defaultManager().getSelectedPath();
  156.             MenuElement[] me = new MenuElement[old.length - 1];
  157.  
  158.             for(int j = 0; j < old.length - 1; ++j) {
  159.                me[j] = old[j];
  160.             }
  161.  
  162.             MenuSelectionManager.defaultManager().setSelectedPath(me);
  163.          }
  164.  
  165.       }
  166.    }
  167.  
  168.    public void clearAccessibleSelection() {
  169.       MenuElement[] old = MenuSelectionManager.defaultManager().getSelectedPath();
  170.       if (old != null) {
  171.          for(int j = 0; j < old.length; ++j) {
  172.             if (old[j] == this.this$0) {
  173.                MenuElement[] me = new MenuElement[j + 1];
  174.                System.arraycopy(old, 0, me, 0, j);
  175.                me[j] = this.this$0.getPopupMenu();
  176.                MenuSelectionManager.defaultManager().setSelectedPath(me);
  177.             }
  178.          }
  179.       }
  180.  
  181.    }
  182.  
  183.    public void selectAllAccessibleSelection() {
  184.    }
  185.  
  186.    // $FF: synthetic method
  187.    JMenu$AccessibleJMenu(JMenu this$0) {
  188.       super(this$0);
  189.       this.this$0 = this$0;
  190.    }
  191. }
  192.